package top.guoziyang.mydb.client;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import top.guoziyang.mydb.transport.Encoder;
import top.guoziyang.mydb.transport.Packager;
import top.guoziyang.mydb.transport.Transporter;

/**
 * 户=客户端程序的启动入口
 */
public class Launcher {
    public static void main(String[] args) throws UnknownHostException, IOException {
        // 创建一个 Socket 对象，连接到本地服务器（127.0.0.1）的端口 9999
        Socket socket = new Socket("127.0.0.1", 9999);
        Encoder e = new Encoder(); // 初始化一个 Encoder 实例，用于对数据包进行编码和解码。
        Transporter t = new Transporter(socket); //初始化一个 Transporter 实例，封装 Socket 的输入输出流，用于数据的传输。
        Packager packager = new Packager(t, e); //初始化一个 Packager 实例，将 Transporter 和 Encoder 组合起来,提供数据的完整封装和解析功能，屏蔽底层实现细节

        Client client = new Client(packager);
        Shell shell = new Shell(client);
        shell.run();
    }
}
